package com.tp2.etna.distribucion1.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.tp2.etna.distribucion1.modelo.ClienteModel;

@Repository
public class ClienteDAOImpl implements ClienteDAO{

	@Autowired
    private DataSource dataSource;
	
	public void setDataSource(DataSource dataSource) {
	        this.dataSource = dataSource;
	}
	
	public List<ClienteModel> listar() {
		
		 String query = "SELECT codigo"
					+ ",nombre"
					+" FROM Cliente";				
						 
	     List<ClienteModel> lista = new ArrayList<ClienteModel>();
	     
	     ClienteModel cliente = null;
	     
	     cliente = new ClienteModel();
	     cliente.setCodigo(0);
    	 cliente.setNombre("[Todos]");
    	 
    	 lista.add(cliente);
	     
	     Connection con = null;
	     PreparedStatement ps = null;
	     ResultSet rs = null;
	     try{
	         con = dataSource.getConnection();
	         ps = con.prepareStatement(query);
	                   
	         rs = ps.executeQuery();
	         while(rs.next()){
	        	 cliente = new ClienteModel();
	        	 cliente.setCodigo(rs.getInt("codigo"));
	        	 cliente.setNombre(rs.getString("nombre"));
	         
	             lista.add(cliente);
	             
	         }
	         
	     }catch(SQLException e){
	         e.printStackTrace();
	     }finally{
	         try {
	             rs.close();
	             ps.close();
	             con.close();
	         } catch (SQLException e) {
	             e.printStackTrace();
	         }
	     }
	     return lista;
		
	}

}
